package com.isesol.seckill.result;

import com.isesol.seckill.enums.*;
import org.apache.commons.lang3.builder.*;

import java.io.*;

/**

 * 接口返回结果基类

 * <p>

 * <li>业务处理是否成功

 * <li>业务处理错误码

 * <li>业务处理错误信息

 * <li>通过泛型将实际对象返回

 * </p>

 *

 * @author Peter Zhang

 * @version: Result.java, v 1.0 2015年11月19日

 */
public class Result<T> implements Serializable {

    /**

     * 业务处理是否成功

     */
    private boolean success;

    /**

     * 业务处理错误码

     */
    private ErrorCode errorCode;

    /**

     * 业务处理错误信息

     */
    private String errorMessage;

    /**

     * 业务处理返回实际对象

     */
    private T model;

    public boolean isSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public ErrorCode getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(ErrorCode errorCode) {
        this.errorCode = errorCode;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }

    public T getModel() {
        return model;
    }

    public void setModel(T model) {
        this.model = model;
    }

    @Override
    public String toString() {

        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
    }
}
